package itheima.zuoye.Test5;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class SeckillActivity {
    private List<Goods> goodsList;
    private List<String> seckillTimes;

    public SeckillActivity() {
        // 初始化商品列表
        goodsList = new ArrayList<>();
        goodsList.add(new Goods(1, "鸭蛋", 10));
        goodsList.add(new Goods(2, "摇头风扇", 2));
        goodsList.add(new Goods(3, "瓢虫项链", 5));

        // 初始化秒杀时间段
        seckillTimes = new ArrayList<>();
        seckillTimes.add("14:00");
        seckillTimes.add("16:00");
        seckillTimes.add("18:00");
        seckillTimes.add("20:00");
        seckillTimes.add("22:00");
    }

    public List<Goods> getGoodsList() {
        return goodsList;
    }

    public List<String> getSeckillTimes() {
        return seckillTimes;
    }

    /**
     * 判断商品是否有库存
     * @param goods 商品
     * @return 是否有库存
     */
    public boolean hasStock(Goods goods) {
        return goods.getStock() > 0;
    }

    /**
     * 判断当前时间是否在秒杀时间段内
     * @param currentTime 当前时间（格式为 "HH:mm"）
     * @return 是否在秒杀时间段内
     */
    public boolean isInSeckillTime(String currentTime) {
        return seckillTimes.contains(currentTime);
    }

    /**
     * 用户抢购商品
     * @param goodsId 商品ID
     * @param currentTime 当前时间（格式为 "HH:mm"）
     * @return 抢购结果
     */
    public String seckill(int goodsId, String currentTime) {
        // 根据商品ID找到对应商品
        Goods goods = goodsList.stream()
                .filter(g -> g.getId() == goodsId)
                .findFirst()
                .orElse(null);

        if (goods == null) {
            return "商品不存在";
        }

        // 判断库存是否充足
        if (!hasStock(goods)) {
            return "库存不足";
        }

        // 判断当前时间是否在秒杀时间段内
        if (!isInSeckillTime(currentTime)) {
            return "当前时间不在秒杀时间段内";
        }

        // 扣减库存
        goods.setStock(goods.getStock() - 1);
        return "抢购成功";
    }




}


